<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js学习笔记</title>
</head>
<style>
    input{
        border-radius: 5px;
    }
</style>
<body>
    <input type="text" placeholder="请输入账号">
    <script>
       //异步函数的返回值是Promise对象，await关键字后跟返回Promise对象的表达式
       function sendData(){
           return new Promise(reslove =>{
                setTimeout(()=>{
                    reslove() //调用reslove函数就会进入fullfied状态
                },2000)
           })
       }
       /*async函数内部才能使用await，await对象会等待返回Promise对象的
       表达式执行完成后取到返回值，才会继续进行对应的代码
       */
       async function getData(){
            //await会等待Promise对象变为fullfied状态才会返回
            console.log('*********')
            var begin=Date.now()
            const res=await sendData() //只有fullfied状态下，await才会阻塞等待
            var end=Date.now()
            console.log(`终于结束了，等待的时间为${end-begin}`)
       }
       getData()
       //Storage存储数据和正则表达式
       //使用localStorage存储信息
       const token='11212121'
       const username='chy'
       const password='123456'
       localStorage.setItem('token',token)
       localStorage.setItem('username',username)
       localStorage.setItem('password',password)
       //取出信息，getItem
       const x=localStorage.getItem('token')
       const y=localStorage.getItem('username')
       const z=localStorage.getItem('password')
       console.log(x,y,z)
       //正则表达式，使用规则匹配对应的字符串
       //const reg=new RegExp() //创建正则表达式
       const reg=/aaa/ig //忽略大小写，并全局匹配
       //案例：检测用户输入，必须是aaaaa
       const inputEl=document.querySelector('input')
       const regex =/^aaaaa$/ //表示以a开头，以a结尾，而且必须是连续的aaaaa
       //箭头没有this，这里使用匿名函数代替
       inputEl.oninput=function(){
            const content=this.value //获取对应的输入内容
            //console.log(content)
          if(regex.test(content)) {
            console.log('success')
          } else {
            console.log('fail')
          }
       }
       //js网络请求--->XHR网络请求，代码结构
      const xhr=new XMLHttpRequest()
      //设置监听状态变化函数
      xhr.onreadystatechange=()=>{
        //不是完成状态就返回
         if(xhr.status !== XMLHttpRequest.DONE) {
            return 
         }
         console.log('网络请求完成')
      }
      xhr.responseType="json" //告知返回值类型是json
      //调用open打开访问对应的网址,只是建立连接，并没有真实发送数据
      //向百度发送get请求
      xhr.open('get',"http://123.207.32.32:1888/01_basic/hello_text",true)
       //发送get请求
      xhr.send()
      console.log(xhr.response)
      //发送post请求
    /*   xhr.open('post',"http://www.baidu.com")
      //告知服务器解析方式
      xhr.setRequestHeader('Context','appliaction/json')
      xhr.send()
 */
    </script>
</body>
</html>